package com.nowcoder.community.dao;

import com.nowcoder.community.entity.Message;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

@Mapper
public interface MessageMapper {

    // 根据userId查询会话列表（即最新私信列表）
    List<Message> selectConversations(int userId, int limit, int offset);

    // 查询会话总数
    int selectConversationCount(int userId);

    // 根据 conversationId 查询会话的所有私信
    List<Message> selectLetters(String conversationId, int limit, int offset);

    // 根据conversationId查询私信数量
    int selectLetterCount(String conversationId);

    // 根据 userId 和 conversationId查询未读私信数量，如果conversationId为空则查询userId对应的用户的所有未读私信
    int selectLetterUnreadCount(int userId, String conversationId);

    // 新增消息
    int insertMessage(Message message);

    // 更改消息的状态(status: 0未读，1已读，2删除）
    int updateStatus(List<Integer> ids, int status);

    // 查询用户的未读通知数，如果topic为空则查询所有类别
    int selectNoticeUnreadCount(int userId, String topic);

    // 查询用户的未读通知
    List<Message> selectNotices(int userId, String topic, int limit, int offset);

    // 查询用户某类别的所有通知数
    int selectNoticeCount(int userId, String topic);

}
